package com.example.demo.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demo.domain.entity.NewCheckpoint;
import com.example.demo.domain.entity.ProblemCategory;
import com.example.demo.domain.entity.ProblemTag;
import com.example.demo.domain.entity.TrainingProblem;
import com.example.demo.dto.ProblemViewDto;
import com.example.demo.dto.ProblemViewPageDto;
import com.example.demo.dto.ProgrammingQuestionDTO;
import com.example.demo.param.voj.VojCreateProblemParam;
import com.example.demo.param.voj.VojProblemQueryParam;

import java.util.List;
import java.util.Map;

public interface NewProblemService {
    Long save(VojCreateProblemParam param);

    int delete(long problemId);

    Page<ProblemViewDto> list(VojProblemQueryParam param);

    TrainingProblem detail(Long id);

    List<NewCheckpoint> getCheckpointsUsingProblemId(long problemId);

    List<ProblemViewDto> getProblemByIds(List<Long> ids);

    List<ProgrammingQuestionDTO> getProgrammingByRandom(Integer limit);

    List<ProgrammingQuestionDTO> getByCreatorId(Long creatorId, Long companyId);

}
